iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
0

前言:大家好,今天鐵人賽已經邁向第五天了,我發現每天最累的竟然是想標題?(早說,為什麼不早說?)

Singleton 全名為單身痛(喂,發音根本不像),在 iOS 開發中算是蠻普遍的一種設計模式

Singleton 在 iOS 中有著以下的特性:

  • 只初始化你的 classs
  • 他是態屬性(static)
  • 全局(global)共享你的 class instance
  • 此外還可以節省記憶體的用量

一句話來說就是:壹靜全局,就能掌握先機,不戰即屈人之兵,實乃寫程式最高境界。
你信了嗎?反正我是信了

  • 而在蘋果爸爸所設計的 API 中,有哪些是用到了 Singleton 的設計模式呢?
    • 我們舉幾個例子來說:
      • 你想要對 Document 進行操作:那你可能會接觸 FileManager.default
      • 你想要在 iOS 中暫存一些不是敏感的資料: 那你可能會接觸 UserDefaults.standard
      • 在做網路請求的時候:URLSession.shared.dataTask

由此可見,把把自己就很愛使用 Singleton 這個設計模式,但是俗説說:有一好,無兩好。

如果你過度濫用,你將會很難管理 Singleton class 的生命週期,可能會導致寫到最後你不知道他作用在哪些範圍。

舉個例子在我的 gist 上,歡迎大家前去收看:
https://gist.github.com/aa08666/d28f43a6d2269728c1720f7bfa1d816e


上一篇
讓我們進入AV....的世界 what? (一)
下一篇
Class vs Struct 超級比一比
系列文
iOS 開發:燃燒吧! 從初心者到超級初心者的轉職之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言